Module detritus-client[src]
Detritus
A wheels-attached, pure-TypeScript library for the Discord API.
Installation
Detritus is distributed via npm. A high-level wrapper over the Discord API is provided
in this package, detritus-client. Low-level wrappers over Discord's REST API and Gateway
are provided through detritus-client-rest and
detritus-client-socket.
$ npm i detritus-client$ yarn add detritus-client
Usage
Detritus is operated through the Clients classes:
ShardClientprovides a base client for connecting to the Discord API and receiving events.ClusterClientprovides a client that createsShardClientclasses inside of it for easier shardingCommandClientwraps over theClusterClientorShardClientto provide support for bot commands.InteractionCommandClientwraps over theClusterClientorShardClientto provide support for interaction commands.ClusterManagerprovides a manager that'll spawn in multipleClusterClientprocesses for big shardings
More Examples are provided under the examples/
directory.
Command Client Sample
const { CommandClientclass CommandClientdetritus-client/CommandClient } = require('detritus-client');
// Note: it is not advised to hard-code your bot token directly into the bot source.
//
// Tokens should be considered secrets and stored in a configuration file that is not
// part of your version control system, or an environment variable.
// By default, the CommandClient will use the ClusterClient
// The ShardClient/ClusterClient will be under CommandClient.client as soon as you create the object
const token = '';
const commandClient = new CommandClientclass CommandClientdetritus-client/CommandClient(token, {
// Prefix `..`, if you want multiple prefixes pass in `prefixes: ['..', '...']`
prefix: '..',
});
// Simple ping/pong command
commandClient.add({
// name describes the command trigger; in this case, ..ping
name: 'ping',
run: (context, args) => {
// Commands should return a promise to ensure that errors are handled
return context.reply('pong!');
},
});
// Command demonstrating command pipelines
commandClient.add({
name: 'owner',
// onBefore should return a boolean to indicate whether or not the command should proceed
onBefore: (context) => context.client.isOwner(context.userId),
onCancel: (context) => context.reply('This command is only available to the bot owner.'),
run: async (context) => {
// Commands may also run asynchronously.
await context.reply('You are the owner of the bot!');
},
});
// Spawn the client in an async context
//
// Note: Due to how Node handles tasks, the script will block until the Detritus client
// is killed.
(async () => {
const client = await commandClient.run();
console.log(`Client has loaded with a shard count of ${client.shardCount}`);
})();InteractionCommand Client Sample
const { Constants, InteractionCommandClientclass InteractionCommandClientdetritus-client/InteractionCommandClient } = require('detritus-client');
const { ApplicationCommandTypesenum ApplicationCommandTypesdetritus-client/ApplicationCommandTypes, InteractionCallbackTypesenum InteractionCallbackTypesdetritus-client/InteractionCallbackTypes, MessageFlagsenum MessageFlagsdetritus-client/MessageFlags } = Constants;
// Note: it is not advised to hard-code your bot token directly into the bot source.
//
// Tokens should be considered secrets and stored in a configuration file that is not
// part of your version control system, or an environment variable.
// By default, the InteractionCommandClient will use the ClusterClient
// The ShardClient/ClusterClient will be under InteractionCommandClient.client as soon as you create the object
const token = '';
const interactionClient = new InteractionCommandClientclass InteractionCommandClientdetritus-client/InteractionCommandClient(token);
// Simple ping/pong command
interactionClient.add({
description: 'Ping!',
name: 'ping',
run: (context, args) => {
// Commands should return a promise to ensure that errors are handled
return context.respond(InteractionCallbackTypesenum InteractionCallbackTypesdetritus-client/InteractionCallbackTypes.CHANNEL_MESSAGE_WITH_SOURCE, 'pong!');
},
});
// Command demonstrating command pipelines
interactionClient.add({
description: 'Are you the owner or part of the team for this application?',
name: 'owner',
// onBefore should return a boolean to indicate whether or not the command should proceed
onBefore: (context) => context.client.isOwner(context.userId),
// we want the error to only show to the user to not clunk up the chat
onCancel: (context) => {
return context.respond(InteractionCallbackTypesenum InteractionCallbackTypesdetritus-client/InteractionCallbackTypes.CHANNEL_MESSAGE_WITH_SOURCE, {
content: 'This command is only available to the bot owner.'),
flags: MessageFlagsenum MessageFlagsdetritus-client/MessageFlags.EPHEMERAL,
});
},
run: async (context) => {
// Commands may also run asynchronously.
await context.respond(InteractionCallbackTypesenum InteractionCallbackTypesdetritus-client/InteractionCallbackTypes.CHANNEL_MESSAGE_WITH_SOURCE, 'You are the owner of the bot!');
},
});
// Context Menu User Command
interactionClient.add({
name: 'Poke',
type: ApplicationCommandTypesenum ApplicationCommandTypesdetritus-client/ApplicationCommandTypes.USER,
run: async (context, args) => {
await context.respond(InteractionCallbackTypesenum InteractionCallbackTypesdetritus-client/InteractionCallbackTypes.CHANNEL_MESSAGE_WITH_SOURCE, {
content: `You poked ${args.member || args.user}`,
flags: MessageFlagsenum MessageFlagsdetritus-client/MessageFlags.EPHEMERAL,
});
},
});
// Context Menu Message Command (tells you when the message was created)
interactionClient.add({
name: 'Creation Date',
guildIds: [], // you can make it a guild command
type: ApplicationCommandTypesenum ApplicationCommandTypesdetritus-client/ApplicationCommandTypes.MESSAGE,
run: async (context, args) => {
const { message } = args;
await context.respond(InteractionCallbackTypesenum InteractionCallbackTypesdetritus-client/InteractionCallbackTypes.CHANNEL_MESSAGE_WITH_SOURCE, {
content: `${message.id} was made at ${message.createdAt}`,
flags: MessageFlagsenum MessageFlagsdetritus-client/MessageFlags.EPHEMERAL,
});
},
});
// Spawn the client in an async context
//
// Note: Due to how Node handles tasks, the script will block until the Detritus client
// is killed.
(async () => {
// Interaction Client will compare the local commands w/ commands stored on discord
// If any of them differ, it will call `.bulkOverwriteApplicationCommands()` with the local commands
// Guild-specific Interaction commands are not supported right now
const client = await interactionClient.run();
console.log(`Client has loaded with a shard count of ${client.shardCount}`);
})();Shard Client Sample
const { ShardClientclass ShardClientdetritus-client/ShardClient } = require('detritus-client');
// Note: it is not advised to hard-code your bot token directly into the bot source.
//
// Tokens should be considered secrets and stored in a configuration file that is not
// part of your version control system, or an environment variable.
const token = '';
const client = new ShardClientclass ShardClientdetritus-client/ShardClient(token, {
gateway: {
// This will tell our client to fill our Members cache on any of our guilds that are larger than the large threshold you pass in (default 250)
loadAllMembers: true,
},
});
// listen to our client's eventemitter
client.on('guildCreate', async ({fromUnavailable, guild}) => {
if (fromUnavailable) {
console.log(`Guild ${guild.name} has just came back from being unavailable`);
} else {
console.log(`Joined Guild ${guild.name}, bringing us up to ${client.guilds.length} guilds.`);
}
});
// listen to our client's eventemitter
client.on('messageCreate', async ({message}) => {
if (message.content === '!ping') {
const reply = await message.reply('pong!, deleting message in 5 seconds...');
setTimeout(async () => {
await reply.delete();
}, 5000);
}
});
(async () => {
await client.run();
console.log('Successfully connected to Discord!');
console.log(`Currently have ${client.guilds.length} guilds in cache.`);
// set our presence, we can pass this into the client's options too under `gateway.presence`
client.gateway.setPresence({
activity: {
// What comes after our activity type, x.
name: 'with Detritus',
// Type 0 sets our message to `Playing x`
type: 0,
},
// do-not-disturb us
status: 'dnd',
});
})();Cluster Client Sample
const { ClusterClientclass ClusterClientdetritus-client/ClusterClient } = require('detritus-client');
// Note: it is not advised to hard-code your bot token directly into the bot source.
//
// Tokens should be considered secrets and stored in a configuration file that is not
// part of your version control system, or an environment variable.
const token = '';
const cluster = new ClusterClientclass ClusterClientdetritus-client/ClusterClient(token, {
gateway: {
// Pass in a presence we will send with the identify payload
presence: {
activity: {
// What comes after our activity type, x.
name: 'with Detritus ClusterClient',
// Type 0 sets our message to `Playing x`
type: 0,
},
// do-not-disturb us
status: 'dnd',
},
},
});
// listen to our client's eventemitter
// `shard` (which is the ShardClient the event originated from) is added onto EVERY event that you listen to on the cluster client
cluster.on('guildCreate', async ({fromUnavailable, guild, shard}) => {
if (fromUnavailable) {
console.log(`Shard #${shard.shardId}:`, `Guild ${guild.name} has just came back from being unavailable`);
} else {
console.log(`Shard #${shard.shardId}:`, `Joined Guild ${guild.name}, bringing us up to ${client.guilds.length} guilds.`);
}
});
// listen to our client's eventemitter
// `shard` (which is the ShardClient the event originated from) is added onto EVERY event that you listen to on the cluster client
cluster.on('messageCreate', async ({message, shard}) => {
if (message.content === '!ping') {
const reply = await message.reply(`pong on shard #${shard.shardId}!, deleting message in 5 seconds...`);
setTimeout(async () => {
await reply.delete();
}, 5000);
}
});
(async () => {
// shards are made after the cluster is ran, found in `ClusterClient.shards`.
await cluster.run();
console.log(`Successfully launched shards ${cluster.shardStart} to ${cluster.shardEnd} with a shardCount of ${cluster.shardCount}`);
})();Contributing
Detritus is licensed under the BSD-2 license; see the LICENSE.
To contribute, please first open an issue describing your requested changes, and then open a pull request.
Exports
index
Re-Exports
exports * as CommandRatelimit from commandratelimitmodule commandratelimitdetritus-client/commandratelimit
exports Endpoints from detritus-client-rest/endpointsmodule detritus-client-restdetritus-client-rest
constants
Exports
Packageconst Packagedetritus-client/Package
Snowflaketype Snowflakedetritus-client/Snowflake
IS_TS_NODEconst IS_TS_NODEdetritus-client/IS_TS_NODE
DEFAULT_MAX_MEMBERSconst DEFAULT_MAX_MEMBERSdetritus-client/DEFAULT_MAX_MEMBERS
DEFAULT_MAX_PRESENCESconst DEFAULT_MAX_PRESENCESdetritus-client/DEFAULT_MAX_PRESENCES
DEFAULT_MAX_VIDEO_CHANNEL_USERSconst DEFAULT_MAX_VIDEO_CHANNEL_USERSdetritus-client/DEFAULT_MAX_VIDEO_CHANNEL_USERS
LOCAL_GUILD_IDconst LOCAL_GUILD_IDdetritus-client/LOCAL_GUILD_ID
MAX_ACTION_ROW_BUTTONSconst MAX_ACTION_ROW_BUTTONSdetritus-client/MAX_ACTION_ROW_BUTTONS
MAX_ACTION_ROW_SELECT_MENUSconst MAX_ACTION_ROW_SELECT_MENUSdetritus-client/MAX_ACTION_ROW_SELECT_MENUS
MAX_ATTACHMENT_SIZEconst MAX_ATTACHMENT_SIZEdetritus-client/MAX_ATTACHMENT_SIZE
MAX_ATTACHMENT_SIZE_PREMIUMconst MAX_ATTACHMENT_SIZE_PREMIUMdetritus-client/MAX_ATTACHMENT_SIZE_PREMIUM
MAX_BITRATEconst MAX_BITRATEdetritus-client/MAX_BITRATE
MAX_EMOJI_SIZEconst MAX_EMOJI_SIZEdetritus-client/MAX_EMOJI_SIZE
MAX_EMOJI_SLOTSconst MAX_EMOJI_SLOTSdetritus-client/MAX_EMOJI_SLOTS
MAX_EMOJI_SLOTS_MOREconst MAX_EMOJI_SLOTS_MOREdetritus-client/MAX_EMOJI_SLOTS_MORE
MIN_BITRATEconst MIN_BITRATEdetritus-client/MIN_BITRATE
MEDIA_ATTACHMENT_URL_PREFIXconst MEDIA_ATTACHMENT_URL_PREFIXdetritus-client/MEDIA_ATTACHMENT_URL_PREFIX
MEDIA_SIZESconst MEDIA_SIZESdetritus-client/MEDIA_SIZES
SPOILER_ATTACHMENT_PREFIXconst SPOILER_ATTACHMENT_PREFIXdetritus-client/SPOILER_ATTACHMENT_PREFIX
INTERACTION_TIMEOUTconst INTERACTION_TIMEOUTdetritus-client/INTERACTION_TIMEOUT
TYPING_TIMEOUTconst TYPING_TIMEOUTdetritus-client/TYPING_TIMEOUT
ApplicationCommandTypesenum ApplicationCommandTypesdetritus-client/ApplicationCommandTypes
ApplicationCommandOptionTypesenum ApplicationCommandOptionTypesdetritus-client/ApplicationCommandOptionTypes
ApplicationCommandPermissionTypesenum ApplicationCommandPermissionTypesdetritus-client/ApplicationCommandPermissionTypes
ApplicationFlagsenum ApplicationFlagsdetritus-client/ApplicationFlags
ApplicationNewsFlagsenum ApplicationNewsFlagsdetritus-client/ApplicationNewsFlags
ApplicationTypesenum ApplicationTypesdetritus-client/ApplicationTypes
ActivityPartyPrivacyenum ActivityPartyPrivacydetritus-client/ActivityPartyPrivacy
ActivityPlatformTypesenum ActivityPlatformTypesdetritus-client/ActivityPlatformTypes
AuditLogActionsenum AuditLogActionsdetritus-client/AuditLogActions
AuditLogActionTypesconst AuditLogActionTypesdetritus-client/AuditLogActionTypes
AuditLogSubtargetTypesconst AuditLogSubtargetTypesdetritus-client/AuditLogSubtargetTypes
AuditLogTargetTypesconst AuditLogTargetTypesdetritus-client/AuditLogTargetTypes
AuditLogChangeKeysenum AuditLogChangeKeysdetritus-client/AuditLogChangeKeys
CarouselMediaTypesenum CarouselMediaTypesdetritus-client/CarouselMediaTypes
ChannelTypesenum ChannelTypesdetritus-client/ChannelTypes
ChannelVideoQualityModesenum ChannelVideoQualityModesdetritus-client/ChannelVideoQualityModes
ClientEventsenum ClientEventsdetritus-client/ClientEvents
ClusterIPCOpCodesenum ClusterIPCOpCodesdetritus-client/ClusterIPCOpCodes
Colorsenum Colorsdetritus-client/Colors
CommandArgumentTypesenum CommandArgumentTypesdetritus-client/CommandArgumentTypes
CommandErrorsconst CommandErrorsdetritus-client/CommandErrors
CommandRatelimitTypesenum CommandRatelimitTypesdetritus-client/CommandRatelimitTypes
DiscordOpusFormatenum DiscordOpusFormatdetritus-client/DiscordOpusFormat
DiscordRegexNamesenum DiscordRegexNamesdetritus-client/DiscordRegexNames
DiscordRegexconst DiscordRegexdetritus-client/DiscordRegex
Distributorsenum Distributorsdetritus-client/Distributors
DistributorNamesconst DistributorNamesdetritus-client/DistributorNames
DistributorUrlsconst DistributorUrlsdetritus-client/DistributorUrls
EntitlementTypesenum EntitlementTypesdetritus-client/EntitlementTypes
ExplicitContentFilterTypesenum ExplicitContentFilterTypesdetritus-client/ExplicitContentFilterTypes
GuildExplicitContentFilterTypesenum GuildExplicitContentFilterTypesdetritus-client/GuildExplicitContentFilterTypes
GuildFeaturesconst GuildFeaturesdetritus-client/GuildFeatures
GuildNotificationSettingsenum GuildNotificationSettingsdetritus-client/GuildNotificationSettings
GuildNSFWLevelsenum GuildNSFWLevelsdetritus-client/GuildNSFWLevels
GuildWidgetStylesenum GuildWidgetStylesdetritus-client/GuildWidgetStyles
ImageFormatsenum ImageFormatsdetritus-client/ImageFormats
InteractionCallbackTypesenum InteractionCallbackTypesdetritus-client/InteractionCallbackTypes
InteractionTypesenum InteractionTypesdetritus-client/InteractionTypes
InviteTargetTypesenum InviteTargetTypesdetritus-client/InviteTargetTypes
LibraryApplicationFlagsenum LibraryApplicationFlagsdetritus-client/LibraryApplicationFlags
LobbyErrorsenum LobbyErrorsdetritus-client/LobbyErrors
LobbyTypesenum LobbyTypesdetritus-client/LobbyTypes
Localesenum Localesdetritus-client/Locales
LocalesTextconst LocalesTextdetritus-client/LocalesText
MarkupTimestampStylesenum MarkupTimestampStylesdetritus-client/MarkupTimestampStyles
MessageComponentButtonStylesenum MessageComponentButtonStylesdetritus-client/MessageComponentButtonStyles
MessageComponentTypesenum MessageComponentTypesdetritus-client/MessageComponentTypes
MessageEmbedTypesenum MessageEmbedTypesdetritus-client/MessageEmbedTypes
MessageFlagsenum MessageFlagsdetritus-client/MessageFlags
MessageTypesenum MessageTypesdetritus-client/MessageTypes
MessageTypesDeletableconst MessageTypesDeletabledetritus-client/MessageTypesDeletable
MfaLevelsenum MfaLevelsdetritus-client/MfaLevels
Oauth2AssetTypesenum Oauth2AssetTypesdetritus-client/Oauth2AssetTypes
Oauth2Scopesenum Oauth2Scopesdetritus-client/Oauth2Scopes
OverwriteTypesenum OverwriteTypesdetritus-client/OverwriteTypes
Permissionsconst Permissionsdetritus-client/Permissions
PERMISSIONS_ALLconst PERMISSIONS_ALLdetritus-client/PERMISSIONS_ALL
PERMISSIONS_ALL_TEXTconst PERMISSIONS_ALL_TEXTdetritus-client/PERMISSIONS_ALL_TEXT
PERMISSIONS_ALL_VOICEconst PERMISSIONS_ALL_VOICEdetritus-client/PERMISSIONS_ALL_VOICE
PERMISSIONS_DEFAULTconst PERMISSIONS_DEFAULTdetritus-client/PERMISSIONS_DEFAULT
PERMISSIONS_LURKERconst PERMISSIONS_LURKERdetritus-client/PERMISSIONS_LURKER
PERMISSIONS_FOR_GUILDconst PERMISSIONS_FOR_GUILDdetritus-client/PERMISSIONS_FOR_GUILD
PERMISSIONS_FOR_CHANNEL_TEXTconst PERMISSIONS_FOR_CHANNEL_TEXTdetritus-client/PERMISSIONS_FOR_CHANNEL_TEXT
PERMISSIONS_FOR_CHANNEL_VOICEconst PERMISSIONS_FOR_CHANNEL_VOICEdetritus-client/PERMISSIONS_FOR_CHANNEL_VOICE
PlatformTypesenum PlatformTypesdetritus-client/PlatformTypes
PremiumGuildTiersenum PremiumGuildTiersdetritus-client/PremiumGuildTiers
PremiumGuildTierNamesconst PremiumGuildTierNamesdetritus-client/PremiumGuildTierNames
PremiumGuildSubscriptionsRequiredconst PremiumGuildSubscriptionsRequireddetritus-client/PremiumGuildSubscriptionsRequired
PremiumGuildLimitsconst PremiumGuildLimitsdetritus-client/PremiumGuildLimits
PremiumUserTypesenum PremiumUserTypesdetritus-client/PremiumUserTypes
PremiumUserLimitsconst PremiumUserLimitsdetritus-client/PremiumUserLimits
RelationshipTypesenum RelationshipTypesdetritus-client/RelationshipTypes
SkuAccessTypesenum SkuAccessTypesdetritus-client/SkuAccessTypes
SkuFlagsenum SkuFlagsdetritus-client/SkuFlags
SkuTypesenum SkuTypesdetritus-client/SkuTypes
SpecialUrlsconst SpecialUrlsdetritus-client/SpecialUrls
StagePrivacyLevelsenum StagePrivacyLevelsdetritus-client/StagePrivacyLevels
StickerFormatsenum StickerFormatsdetritus-client/StickerFormats
StickerExtensionsenum StickerExtensionsdetritus-client/StickerExtensions
SystemChannelFlagsenum SystemChannelFlagsdetritus-client/SystemChannelFlags
SystemMessagesconst SystemMessagesdetritus-client/SystemMessages
TeamMembershipStatesenum TeamMembershipStatesdetritus-client/TeamMembershipStates
TeamPayoutAccountStatusesenum TeamPayoutAccountStatusesdetritus-client/TeamPayoutAccountStatuses
UserFlagsenum UserFlagsdetritus-client/UserFlags
UserPremiumGuildSubscriptionLevelsenum UserPremiumGuildSubscriptionLevelsdetritus-client/UserPremiumGuildSubscriptionLevels
UserPremiumGuildSubscriptionMonthsconst UserPremiumGuildSubscriptionMonthsdetritus-client/UserPremiumGuildSubscriptionMonths
UserRequiredActionsconst UserRequiredActionsdetritus-client/UserRequiredActions
VerificationLevelsenum VerificationLevelsdetritus-client/VerificationLevels
WebhookTypesenum WebhookTypesdetritus-client/WebhookTypes
DiscordKeysconst DiscordKeysdetritus-client/DiscordKeys
DetritusKeysconst DetritusKeysdetritus-client/DetritusKeys
COMMAND_RATELIMIT_TYPESconst COMMAND_RATELIMIT_TYPESdetritus-client/COMMAND_RATELIMIT_TYPES
DEFAULT_GROUP_DM_AVATARSconst DEFAULT_GROUP_DM_AVATARSdetritus-client/DEFAULT_GROUP_DM_AVATARS
IMAGE_FORMATSconst IMAGE_FORMATSdetritus-client/IMAGE_FORMATS
client
Exports
VoiceConnectObjectinterface VoiceConnectObjectdetritus-client/VoiceConnectObject
ShardClientCacheOptionsinterface ShardClientCacheOptionsdetritus-client/ShardClientCacheOptions
ShardClientPassOptionsinterface ShardClientPassOptionsdetritus-client/ShardClientPassOptions
ShardClientOptionsinterface ShardClientOptionsdetritus-client/ShardClientOptions
ShardClientRunOptionsinterface ShardClientRunOptionsdetritus-client/ShardClientRunOptions
VoiceConnectOptionsinterface VoiceConnectOptionsdetritus-client/VoiceConnectOptions
ShardClientclass ShardClientdetritus-client/ShardClient
commandclient
Exports
CommandClientOptionsinterface CommandClientOptionsdetritus-client/CommandClientOptions
CommandClientCommandChecktype CommandClientCommandCheckdetritus-client/CommandClientCommandCheck
CommandClientCommandCanceltype CommandClientCommandCanceldetritus-client/CommandClientCommandCancel
CommandClientMessageChecktype CommandClientMessageCheckdetritus-client/CommandClientMessageCheck
CommandClientMessageCanceltype CommandClientMessageCanceldetritus-client/CommandClientMessageCancel
CommandClientPrefixestype CommandClientPrefixesdetritus-client/CommandClientPrefixes
CommandClientPrefixChecktype CommandClientPrefixCheckdetritus-client/CommandClientPrefixCheck
CommandClientAddinterface CommandClientAdddetritus-client/CommandClientAdd
CommandClientRunOptionsinterface CommandClientRunOptionsdetritus-client/CommandClientRunOptions
CommandAttributesinterface CommandAttributesdetritus-client/CommandAttributes
CommandReplyinterface CommandReplydetritus-client/CommandReply
CommandClientclass CommandClientdetritus-client/CommandClient
clusterclient
Exports
ClusterClientOptionsinterface ClusterClientOptionsdetritus-client/ClusterClientOptions
ClusterClientRunOptionsinterface ClusterClientRunOptionsdetritus-client/ClusterClientRunOptions
ClusterClientclass ClusterClientdetritus-client/ClusterClient
clustermanager
Exports
ClusterManagerOptionsinterface ClusterManagerOptionsdetritus-client/ClusterManagerOptions
ClusterManagerRunOptionsinterface ClusterManagerRunOptionsdetritus-client/ClusterManagerRunOptions
ClusterManagerRestCachePayloadinterface ClusterManagerRestCachePayloaddetritus-client/ClusterManagerRestCachePayload
ClusterManagerclass ClusterManagerdetritus-client/ClusterManager
interactioncommandclient
Exports
InteractionCommandClientOptionsinterface InteractionCommandClientOptionsdetritus-client/InteractionCommandClientOptions
InteractionCommandClientCommandChecktype InteractionCommandClientCommandCheckdetritus-client/InteractionCommandClientCommandCheck
InteractionCommandClientCommandCanceltype InteractionCommandClientCommandCanceldetritus-client/InteractionCommandClientCommandCancel
InteractionCommandClientInteractionChecktype InteractionCommandClientInteractionCheckdetritus-client/InteractionCommandClientInteractionCheck
InteractionCommandClientInteractionCanceltype InteractionCommandClientInteractionCanceldetritus-client/InteractionCommandClientInteractionCancel
InteractionCommandClientAddOptionsinterface InteractionCommandClientAddOptionsdetritus-client/InteractionCommandClientAddOptions
InteractionCommandClientRunOptionsinterface InteractionCommandClientRunOptionsdetritus-client/InteractionCommandClientRunOptions
InteractionCommandClientclass InteractionCommandClientdetritus-client/InteractionCommandClient